import { createRouter, createWebHistory, createWebHashHistory,RouteRecordRaw } from 'vue-router'
import HomeView from '../views/HomeView.vue'
import { staticRoutes, notFoundAndNoPower } from '../router/route';
import { Session } from '../utils/storage';
import requests from '@/utils/request';
import store from '@/store';




// 引入进度条插件
import NProgress from 'nprogress'
// 引入对应css样式
import 'nprogress/nprogress.css' 


const router = createRouter({
  history: createWebHashHistory(),
  
  /**
	 * 说明：
	 * 1、notFoundAndNoPower 默认添加 404、401 界面，防止一直提示 No match found for location with path 'xxx'
	 * 2、backEnd.ts(后端控制路由)、frontEnd.ts(前端控制路由) 中也需要加 notFoundAndNoPower 404、401 界面。
	 *    防止 404、401 不在 layout 布局中，不设置的话，404、401 界面将全屏显示
	 */
  routes:[...notFoundAndNoPower, ...staticRoutes]
})


// 路由加载前
router.beforeEach(async (to, from, next) => { 
  NProgress.configure({ showSpinner: false });
  NProgress.start()
  const token = Session.get('token')
  if (to.path != '/login' && !token) {
    NProgress.done();
    return next('/login');
  } else {
     NProgress.done();
    return next()
  }
  if (to.meta.title) NProgress.start();
})

// 路由加载后
router.afterEach(() => {
	NProgress.done();
});


export default router
